// 云对象教程: https://uniapp.dcloud.net.cn/uniCloud/cloud-obj
// jsdoc语法提示教程：https://ask.dcloud.net.cn/docs/#//ask.dcloud.net.cn/article/129
const db = uniCloud.databaseForJQL();
  // 根据商品Id获取商品信息
 function  getCartByGoodsId(id){
    return  db.collection("cart_list").where({"goods_id":id}).get()
  } 
  //添加商品到购物车
function addGoodToCart(data){    
    return db.collection("cart_list").add(data)
  }
  //根据商品ID修改商品数量
  function updateGoodsNumOfCart(id,num){
    return db.collection("cart_list").where({"goods_id":id}).update({"number":num})
  }
module.exports = {
  
	_before: function () { // 通用预处理器
    db.setUser({
      role:["admin"]
    })
	},
 async addCart(data){
    const res = await getCartByGoodsId(data.goods_id)
    //购物车中的此商品数量为零
    // console.log("*************"+res.data[0].number);
    // console.log("**************"+(res.data.toString() ===''));
     if(res.data.toString()===''){
       data.number = 1
      return addGoodToCart(data)
      //购物车中此商品数量已经存在
     }else{
       res.data[0].number++
       return updateGoodsNumOfCart(res.data[0].goods_id, res.data[0].number)
     } 
     
  },
 async changeGoodsNumber(val={}){

	  const {data:r} = await db.collection("cart_list").where({
		  "goods_id":val.id
	  }).update({
		  "number":val.number
	  })
	  const {data:res}  = await db.collection("cart_list").where({
	  		 "goods_id":val.id
	  }).get()
	  if(res[0].number ===0 ){
		  return db.collection("cart_list").where({
			  "goods_id":val.id
		  }).remove()
	  }
  },

	  
  // 获取购物车所有商品
 async getGoodsInfo(){
	return await db.collection("cart_list").get()
},
	// async addOrder(data){
	// 	return await db.collection("order").add(data)
	// }
		

 //  //添加商品信息
 // async add(data){
 //     const good = db.collection("goods").where({"goods_id":data.goods_id}).get()
 //     //商品不存在
 //     if(good===[]){
 //       db.collection("goods").add(data)
 //     }else{
       
 //     }
 //    return  
 //  },
 //  //根据商品Id获取商品信息
 //  get(id){
 //    return db.collection("goods").where({"goods_id":id}).get()
 //  },


	/**
	 * method1方法描述
	 * @param {string} param1 参数1描述
	 * @returns {object} 返回值描述
	 */
	/* 
	method1(param1) {
		// 参数校验，如无参数则不需要
		if (!param1) {
			return {
				errCode: 'PARAM_IS_NULL',
				errMsg: '参数不能为空'
			}
		}
		// 业务逻辑
		
		// 返回结果
		return {
			param1 //请根据实际需要返回值
		}
	}
	*/
}
